package co.edu.uniquindio.proyecto.entidades;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

/**
 * Entity implementation class for Entity: Adjunto
 * Clase que representa la entidad Adjunto
 *
 * @author Johan Sebastian Giraldo Hurtado
 * @author Universidad del Quindio
 * @version 1.0
 * @since 17/03/2014
 *
 */
@Entity
public class Adjunto implements Serializable {
	
	/**
	 * Atributo que contiene el valor de serialVersionUID dentro de la clase
	 */
	private static final long serialVersionUID = 1L;
	
	/**
	 * Atributo que contiene el valor de Id dentro de la clase
	 */
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Integer Id;
	
	/**
	 * Atributo que contiene el valor de ruta dentro de la clase
	 */
	private String ruta;

	/**
	 * Atributo que contiene el valor de correos dentro de la clase
	 */
	@ManyToOne
	private Correo correo;

	/**
	 * Este metodo permite obtener el valor del atributo id
	 * @return Retorna el valor del atributo id
	 */
	public Integer getId() {
		return Id;
	}

	/**
	 * Este metodo permite asignar un valor al atributo id
	 * @param id El valor a ser asginado al atributo id
	 */
	public void setId(Integer id) {
		Id = id;
	}

	/**
	 * Este metodo permite obtener el valor del atributo ruta
	 * @return Retorna el valor del atributo ruta
	 */
	public String getRuta() {
		return ruta;
	}

	/**
	 * Este metodo permite asignar un valor al atributo ruta
	 * @param ruta El valor a ser asginado al atributo ruta
	 */
	public void setRuta(String ruta) {
		this.ruta = ruta;
	}

	/**
	 * Este metodo permite obtener el valor del atributo correo
	 * @return Retorna el valor del atributo correo
	 */
	public Correo getCorreo() {
		return correo;
	}

	/**
	 * Este metodo permite asignar un valor al atributo correo
	 * @param correo El valor a ser asginado al atributo correo
	 */
	public void setCorreo(Correo correo) {
		this.correo = correo;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((Id == null) ? 0 : Id.hashCode());
		return result;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Adjunto other = (Adjunto) obj;
		if (Id == null) {
			if (other.Id != null)
				return false;
		} else if (!Id.equals(other.Id))
			return false;
		return true;
	}
   
}
